// 给你一个整数数组 nums，请你将该数组升序排列。

//

// 示例 1：

// 输入：nums = [5,2,3,1]
// 输出：[1,2,3,5]
// 示例 2：

// 输入：nums = [5,1,1,2,0,0]
// 输出：[0,0,1,1,2,5]
/**
 * @param {number[]} nums
 * @return {number[]}
 */
var sortArray = function (nums) {
    debugger;
  function recursion(arr) {
    //    分
    const leftArr = arr.slice(0, arr.length / 2);
    const rightArr = arr.slice(arr.length / 2, arr.length);
    let sortLeftArr, sortRightArr;
    if (leftArr.length > 1) {
      sortLeftArr = recursion(leftArr);
    } else {
      sortLeftArr = leftArr;
    }
    if (rightArr.length > 1) {
      sortRightArr = recursion(rightArr);
    } else {
      sortRightArr = rightArr;
    }
    //   合
    let i = 0,
      j = 0;
    let sortArray = [];
    for (let k = 0; k < sortLeftArr.length + sortRightArr.length; k++) {
      if (i >= sortLeftArr.length || j >= sortRightArr.length) {
        sortArray = sortArray.concat(
          sortLeftArr.slice(i),
          sortRightArr.slice(j)
        );
        break;
      }
      if (sortLeftArr[i] > sortRightArr[j]) {
        sortArray.push(sortRightArr[j]);
        j++;
      } else {
        sortArray.push(sortLeftArr[i]);
        i++;
      }
    }
    return sortArray;
  }
  return recursion(nums);
};
const result = sortArray([5, 1, 4, 7, 3]);
console.log(result);
